package outbound_crowd

import (
	"database/sql"
	"time"
)

type OutboundCrowd struct {
	Id                    int32        `json:"id"`                      // 主键
	CrowdName             string       `json:"crowd_name"`              // 人群包名称
	Type                  string       `json:"type"`                    // 人群包类型: 中标单位 | 甲方单位| RPA
	Status                int32        `json:"status"`                  // 状态，1-数据生成中，2-已完成
	Version               int32        `json:"version"`                 // 版本号，当编辑人群包时version自增
	AreaCode              string       `json:"area_code"`               // 中标地区或者采购地区，包括province_code、city_code,多个由英文逗号拼接
	AreaName              string       `json:"area_name"`               // 中标地区或者采购地区名称
	WinbidKeyword         string       `json:"winbid_keyword"`          // 中标关键词,多个由英文逗号拼接
	CompanyType           string       `json:"company_type"`            // 单位类型,多个由英文逗号拼接
	CompanyKeyword        string       `json:"company_keyword"`         // 企业关键词,多个由英文逗号拼接
	CompanyKeywordExclude string       `json:"company_keyword_exclude"` // 企业排除词,多个由英文逗号拼接
	WinbidDateStart       sql.NullTime `json:"winbid_date_start"`       // 中标时间(开始)
	WinbidDateEnd         sql.NullTime `json:"winbid_date_end"`         // 中标时间(结束)
	PhoneType             string       `json:"phone_type"`              // 联系方式：手机、座机
	EveryCompanyNum       int32        `json:"every_company_num"`       // 每家公司联系方式数量
	BidKeyword            string       `json:"bid_keyword"`             // 招标关键词,多个由英文逗号拼接
	BidKeywordExclude     string       `json:"bid_keyword_exclude"`     // 招标排除词,多个由英文逗号拼接
	//BidDateStart      time.Time    `json:"bid_date_start" gorm:"default:null"`      // 招标时间(开始)
	BidDateStart      sql.NullTime `json:"bid_date_start"`      // 招标时间(开始)
	BidDateEnd        sql.NullTime `json:"bid_date_end"`        // 招标时间(结束)
	IsLandOpen        int32        `json:"is_land_open"`        // 是否开启拿地订阅，0未开启|1开启
	LandUsage         string       `json:"land_usage"`          // 拿地用途，多个由英文逗号拼接
	LandDateStart     sql.NullTime `json:"land_date_start"`     // 拿地时间(开始)
	LandDateEnd       sql.NullTime `json:"land_date_end"`       // 拿地时间(结束)
	IsBuildingOpen    int32        `json:"is_building_open"`    // 是否开启在建订阅,0-未开启|1-开启
	BuildingType      string       `json:"building_type"`       // 在建项目类型（工程用途）,多个由英文逗号拼接
	BuildingDateStart sql.NullTime `json:"building_date_start"` // 开工时间(开始)
	BuildingDateEnd   sql.NullTime `json:"building_date_end"`   // 开工时间(结束)
	IsSaleOpen        int32        `json:"is_sale_open"`        // 是否开启在售订阅，0未开启|1开启
	SaleType          string       `json:"sale_type"`           // 在售项目类型（装修类型）,多个由英文逗号拼接
	SaleDateStart     sql.NullTime `json:"sale_date_start"`     // 开盘时间(开始)
	SaleDateEnd       sql.NullTime `json:"sale_date_end"`       // 开盘时间(结束)
	ProjectKeyword    string       `json:"project_keyword"`     // 项目关键词
	LogicType         string       `json:"logic_type"`          // 逻辑类型：任一、全部
	IsBidOpen         int32        `json:"is_bid_open"`         // 是否开启招标，0未开启|1开启
	LandKeyword       string       `json:"land_keyword"`        // 拿地关键词
	BuildingKeyword   string       `json:"building_keyword"`    // 在建项目关键词
	SaleKeyword       string       `json:"sale_keyword"`        // 开盘关键词
	CompanyTotal      int32        `json:"company_total"`       // 项目关键词
	ContactTotal      int32        `json:"contact_total"`       // 项目关键词
	CreatedBy         string       `json:"created_by"`          // 创建人
	CreatedOn         time.Time    `json:"created_on"`          // 创建时间
	ModifiedBy        string       `json:"modified_by"`         // 修改人
	ModifiedOn        time.Time    `json:"modified_on"`         // 最后修改时间
	IsDeleted         int32        `json:"is_deleted"`          // 是否已删除，0-否，1-是
}

func (p OutboundCrowd) TableName() string {
	return "gfyx_outbound_crowd"
}

type GetCrowdListCondition struct {
	CrowdName string `json:"crowd_name"`
	Status    int32  `json:"status"`
}
